package com.yqkj.zysoft.upms.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yqkj.zysoft.upms.entity.FrameworkAuth;
import com.yqkj.zysoft.upms.entity.dto.AuthTreeResponse;
import com.yqkj.zysoft.upms.entity.dto.FrameWorkAuthAddRequest;
import com.yqkj.zysoft.upms.entity.dto.FrameWorkAuthUpdateRequest;
import com.yqkj.zysoft.upms.entity.dto.PageAuthRequest;

import java.util.List;

/**
 * <p>
 * 权限 服务类
 * </p>
 *
 * @author GreatorMan.cool
 * @since 2022-08-10
 */
public interface IFrameworkAuthService extends IService<FrameworkAuth> {
    /**
     * 新增
     * @param frameWorkAuthAddRequest 参数
     * @return 返回 true 成功 false 失败
     */
    Long add(FrameWorkAuthAddRequest frameWorkAuthAddRequest);

    /**
     * 更新数据
     * @param frameWorkAuthUpdateRequest 参数
     * @return true 成功 false 失败
     */
    Boolean updateObject(FrameWorkAuthUpdateRequest frameWorkAuthUpdateRequest);

    /**
     * 权限
     * @param authRequest 参数
     * @return 返回值
     */
    List<AuthTreeResponse> tree(PageAuthRequest authRequest);
    /**
     * 验证数据
     * @param  frameWorkAuthUpdateRequest 参数
     * @return true 验证成功 false 验证失败
     */
    Boolean verifyCode(FrameWorkAuthUpdateRequest frameWorkAuthUpdateRequest);

    /**
     * 删除
     * @param id ID
     * @return true 成功 false 失败
     */
    public Boolean del(Long id);
    /**
     * 启用
     * @param id ID
     * @return true 启用成功 false 启用失败
     */
    public Boolean able(Long id);

    /**
     * 启用
     * @param id ID
     * @return true 启用成功 false 启用失败
     */
    public Boolean disAble(Long id);

    /**
     * 获取功能权限
     * @param authId ID
     * @return 返回功能集合
     */
    public String getfunctionConfig(Long authId);
    /**
     *更新权限功能
     * @param functin 功能
     * @param authId 权限ID
     * @return true 成功
     */
    public Boolean udpateFunctionConfig(String functin, Long authId);
}
